import java.util.Scanner;

public class Test {
    //在同一个类中定义多个方法：要求不仅可以求2个整数的最大值，
    // 还可以求3个小数的最大值？

    public static int max(int num1,int num2){
        return Math.max(num1,num2);
    }

    public static double max(double num1 ,double num2,double num3){
        return Math.max(num1,num2)>num3 ? Math.max(num1,num2):num3 ;//1
    }

    public static void main(String[] args) {
        System.out.println(max(1, 2));
        System.out.println(max(1.1, 1.2, 1.3));

    }

    //编写代码模拟三次密码输入的场景。 最多能输入三次密码，密码正确，
    // 提示“登录成功”,密码错误，
    //可以重新输 入，最多输入三次。三次均错，则提示退出程序
    public static void login(){
        Scanner scanner =new Scanner(System.in);
        int count = 3;
        while(count !=0){
            System.out.println("请输入你的密码：");
            String pass =scanner.nextLine();
            if(pass.equals("123456")){
                System.out.println("密码正确！");
                return;
            }
            count--;
            System.out.println("你还有"+count+"次机会");
        }

    }
    public static void main7(String[] args) {
        login();
    }

    //按顺序打印⼀个数字的每⼀位(例如 1234 打印出 1 2 3 4)
    public static void print(int num) {
        if (num <= 9) {
            System.out.println(num);
        }else{
            print(num / 10);
            System.out.println(num % 10);
        }
    }
    public static void main6(String[] args) {
        print(123);
    }
   //输出一个整数的每一位
    public static void print2(int n){
        while (n != 0){
            System.out.println(n % 10);
            n/=10;
        }
    }

    public static void main5(String[] args) {
        print2(123);
    }
    //用递归，输出一个整数的每一位
    public static void print1(int n){
        if (n<=9){
            System.out.println(n);

        }
        System.out.println(n % 10);
        print1(n/10);
    }

    public static void main4(String[] args) {
        print1(123);
    }





    //用递归求解斐波那契数列的第 N 项
    // 1 1 2 3 5 8 13 21 .....
    public static int fib(int n){
        if (n==1|| n==2){

            return 1;
        }
        int ret = fib(n-2)+fib(n-1);
        return ret;
    }

    public static void main3(String[] args) {
        System.out.println(fib(1));
        System.out.println(fib(2));
        System.out.println(fib(3));
        System.out.println(fib(4));
        System.out.println(fib(5));
    }






    //不同递归求解斐波那契数列的第 N 项
    // 1 1 2 3 5 8 13 21 .....
    public static int fib1(int n){
        if(n == 1 || n == 2){
         return 1;
        }
        int fib1 = 1;
        int fib2 = 1;
        int fib3 = 0;
        for (int i = 3; i <=n; i++) {
            fib3 = fib1 + fib2;
            fib1 =fib2;
            fib2 = fib3;
        }
        return fib3;
    }

    public static void main2(String[] args) {
        System.out.println(fib1(1));
        System.out.println(fib1(2));
        System.out.println(fib1(3));
        System.out.println(fib1(4));
        System.out.println(fib1(5));

    }







    //写⼀个递归⽅法，输⼊⼀个⾮负整数，返回组成它的数字之和. 例如，输⼊ 1729, 则应该返
    //回1+7+2+9，它的和是19
    public static int fac(int n ){
        if(n<=9){
            return n;
        }
        return n%10+fac(n/10);
    }

    public static void main1(String[] args) {
        int ret=fac(1729);
        System.out.println(ret);
    }
}
